<?php
namespace Api\Controller;

class ApitestController extends ApiBaseController {
    /**
     * 调试工具
     * 如果缓存读取不出来请检查缓存目录是否有写入权限
     * 模块名和方法名中如果出现'='则表示修改或删除,等号后面有值则修改没有则删除
     */
    function index(){
		//获取数据缓存
		$cache=file_get_contents("./Runtime/apitest_cache.php");
		$cache_data=substr($cache,strpos($cache,"$$:")+5);
		$cache_array=unserialize($cache_data)?unserialize($cache_data):array();
		if(!IS_AJAX){//输出接口测试模板
			if($cache_array){
				$model=$cache_array['model'];
			}else{
				$model=array();
			}
			//模块数据
			$this->assign("model",$model);
			$this->assign("api_url",$_SERVER['HTTP_HOST']);
			$this->display();exit;
		}
		/**
		 *获取数据缓存-接口方法
		 *参数：model(模块)
		*/
		if(I("model")){
			print json_encode($cache_array['action'][I("model")]);
		}
		/**
		 *获取数据缓存-接口参数
		 *参数：model(模块),action(方法)
		*/
		if(I("a_model") && I("action")){
			print $cache_array['form_input'][I("a_model")][I("action")];
		}
		/**
		 *缓存数据,添加删除或修改,
         * 例如:
         * I("model_name")参数为:(购物车=购物车车)即购物车修改为购物车车
         * I("model_name")参数为:(购物车=)即删除购物车
         * I("model_name")参数为:(购物车)即新增或更新
		 *参数：cache(标识),data(json数据)
		*/
		if(I("model_name") && I("action_name")){
		    //修改模块名,方法名
            $m_array=explode("=",I("model_name"));
            $a_array=explode("=",I("action_name"));
            if(count($m_array)==2){//模块名修改或删除
                if($m_array[1]){//修改
                    $cache_array['model'][$m_array[1]]=$cache_array['model'][$m_array[0]];
                    $cache_array['action'][$m_array[1]]=$cache_array['action'][$m_array[0]];
                    $cache_array['form_input'][$m_array[1]]=$cache_array['form_input'][$m_array[0]];
                }
                //删除模块
                    unset($cache_array['model'][$m_array[0]]);
                    unset($cache_array['action'][$m_array[0]]);
                    unset($cache_array['form_input'][$m_array[0]]);
            }else if(count($a_array)==2){//方法名修改或删除
                if($a_array[1]){//修改方法
                    $cache_array['action'][I("model_name")][$a_array[1]]=$cache_array['action'][I("model_name")][$a_array[0]];
                    $cache_array['form_input'][I("model_name")][$a_array[1]]=$cache_array['form_input'][I("model_name")][$a_array[0]];
                }
                //删除方法
                unset($cache_array['action'][I("model_name")][$a_array[0]]);
                unset($cache_array['form_input'][I("model_name")][$a_array[0]]);
            }else{
                //更新或添加数据
                $cache_array['model'][I("model_name")]=I("url_model");
                $cache_array['action'][I("model_name")][I("action_name")]=I("url_action");
                $cache_array['form_input'][I("model_name")][I("action_name")]=$_REQUEST['form_input'];
            }
			//处理数据
			$cache_array_str=serialize($cache_array);
			//准备写入的数据
			$cache=str_replace($cache_data,$cache_array_str,$cache);
			if(!$cache){
				//文件不存在或出现异常
				$cache="<?php
---tyong-2018.7.8---
BEGIN$$:
".$cache_array_str;
			}
			file_put_contents("./Runtime/apitest_cache.php",$cache);
		}
    }

}